package day04;

// 十进制M转为N进制数 N>9参考十六进制
// N：2~16
// 除K倒余法

import java.util.Scanner;

// 正确代码：
public class Main2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();
        boolean flg = false;  // 判断是否是负数
        String table = "0123456789ABCDEF"; // 十六进制对照表
        StringBuilder ret = new StringBuilder(); // 最终转换结果

        // 开始进行转换
        if(m < 0) { // 负数
            m = -m;
            flg = true;
        }
         // 这儿，说明此时m>=0!

        if(m == 0) { // 单独判断0
            ret.append('0');
        }
        while(m != 0) {
            // 这里是可能出现字母的，此时就对照着table进行取！！
            ret.append(table.charAt(m%n));
            m = m/n;
        }
        // 判断负数加符号就行
        if(flg == true) {
            ret.append('-');
        }

        // 进行倒余操作
        ret.reverse();
        // 输出就行
        System.out.println(ret.toString());
    }
}


//public class Main2 {
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int M = in.nextInt();
//        int N = in.nextInt();
//        /*if(in.nextInt() >=2 && in.nextInt()<=16) {
//            N = in.nextInt();
//        }*/
//        // 开始进行转换：
//        // 十进制转换为K进制：除K倒余法（k>9 余数10-A...）
//        Main2 main2 = new Main2();
//        main2.reverseK(M,N);
//    }
//    private void reverseK(int M, int N) {
//        // 忘了考虑一个问题 如果余数大于10
//        if(M%N!=0) {
//            reverseK(M/N,N);
//            if(M%N > 10) {
//                // 注意：A：65  a:97  A+32=a
//                // 输出的就是11--A(65)   -> 11+54==65
//                char ch = (char) (M%N+54);
//                System.out.print(ch);
//            }
//            System.out.print(M%N);
//        }
//        // 来到这儿，说明余数为0！
//        return;
//    }
//}
